const fs = require('fs');
const path = require('path');

/**
 * 递归复制目录
 * @param {string} src 源目录
 * @param {string} dest 目标目录
 */
function copyDir(src, dest) {
  try {
    // 确保目标目录存在
    if (!fs.existsSync(dest)) {
      fs.mkdirSync(dest, { recursive: true });
    }

    // 读取源目录
    const files = fs.readdirSync(src);

    files.forEach(file => {
      const srcPath = path.join(src, file);
      const destPath = path.join(dest, file);

      const stat = fs.statSync(srcPath);

      if (stat.isDirectory()) {
        copyDir(srcPath, destPath);
      } else {
        fs.copyFileSync(srcPath, destPath);
      }
    });

    console.log(`✓ 已复制 ${src} 到 ${dest}`);
  } catch (error) {
    console.error(`复制 ${src} 到 ${dest} 时出错:`, error.message);
    process.exit(1);
  }
}

// 复制 resource/html 目录到 out 和 dist 目录
const htmlSrc = path.join(__dirname, '..', 'resource', 'html');
const targets = [
  {
    name: 'out',
    path: path.join(__dirname, '..', 'out', 'src', 'resource', 'html')
  },
  {
    name: 'dist',
    path: path.join(__dirname, '..', 'dist', 'resource', 'html')
  }
];

console.log('🔧 开始复制登录HTML文件...');

if (fs.existsSync(htmlSrc)) {
  targets.forEach(target => {
    console.log(`\n📁 复制HTML文件到 ${target.name} 目录...`);
    copyDir(htmlSrc, target.path);
    
    // 验证复制的文件
    const loginHtmlFiles = ['login.html', 'loginFailed.html', 'loginSuccess.html'];
    let foundCount = 0;
    
    loginHtmlFiles.forEach(fileName => {
      const filePath = path.join(target.path, fileName);
      if (fs.existsSync(filePath)) {
        console.log(`  ✓ 确认文件存在: ${fileName}`);
        foundCount++;
      } else {
        console.warn(`  ⚠ 警告: 文件不存在 ${fileName}`);
      }
    });
    
    console.log(`✅ ${target.name} 目录中找到 ${foundCount}/${loginHtmlFiles.length} 个登录文件`);
  });
  
  console.log('\n🎉 所有HTML文件复制完成！');
} else {
  console.error('❌ 错误: resource/html 目录不存在');
  process.exit(1);
} 